import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import { message } from 'ant-design-vue';
/**
 * 完整引入Ant Design Vue
 */
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';

//全局使用Ant Design Vue 图标
import * as Icons from '@ant-design/icons-vue';
// @ts-ignore
// 解决axios返回数据精度丢失问题
import JSONBIG from "json-bigint";

// 全局使用tools

// axios
import axios from 'axios';
import {Tool} from "@/utils/tool";
// 设置默认请求地址
axios.defaults.baseURL = process.env.VUE_APP_SERVER;

// 解决axios返回数据精度丢失问题
axios.defaults.transformResponse = [
    function (data) {
        const json = JSONBIG({
            storeAsString: true
        })
        return json.parse(data)
    }
]

// axios拦截器
axios.interceptors.request.use(function (config) {
    console.log('请求参数：', config);
    const token = store.state.user.token;
    if (Tool.isNotEmpty(token)) {
        config.headers.token = token;
        console.log('请求headers增加token：', token);
    }

    return config;
}, error => {
    console.log('返回错误：', error);
    return Promise.reject(error);
});
axios.interceptors.response.use(function (response) {
    console.log('返回结果：', response.data);
    return response;
}, error => {
    console.log('返回错误：', error);
    return Promise.reject(error);
});

const app = createApp(App);
app.use(store);
app.use(router);
app.use(Antd);
app.mount('#app');

//全局使用Ant Design Vue 图标
const icons: any = Icons;
for (const i in icons) {
    app.component(i, icons[i]);
}


// 切换环境日志
console.log('当前环境：', process.env.NODE_ENV);
console.log('服务器地址：', process.env.VUE_APP_SERVER);
